test("NavigationController QueryStringNavigationProvider GoToAction", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.QueryStringNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/scan.html?c=123456';
    navigation.GoToAction();
    equal(actualValue, expectedResult, "NavigationController GoToAction:" + actualValue);
    expectedResult = '/en/trackable/scan.html?c=abcdef';
    navigation.GoToAction('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToAction:" + actualValue);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/scan.html?c=123456';
    navigation.GoToAction();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToAction:" + actualValue);
    expectedResult = '/es/trackable/scan.html?c=abcdef';
    navigation.GoToAction('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToAction:" + actualValue);
});
test("NavigationController QueryStringNavigationProvider GoToView", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.QueryStringNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/GoToView.html?c=123456';
    navigation.GoToView();
    equal(actualValue, expectedResult, "NavigationController GoToView:" + actualValue);
    expectedResult = '/en/trackable/GoToView.html?c=abcdef';
    navigation.GoToView('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToView:" + actualValue);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/GoToView.html?c=123456';
    navigation.GoToView();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToView:" + actualValue);
    expectedResult = '/es/trackable/GoToView.html?c=abcdef';
    navigation.GoToView('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToView:" + actualValue);
});
test("NavigationController QueryStringNavigationProvider GoToPickUp", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.QueryStringNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/Got.html?c=123456';
    navigation.GoToPickUp();
    equal(actualValue, expectedResult, "NavigationController GoToPickUp:" + actualValue);
    expectedResult = '/en/trackable/Got.html?c=abcdef';
    navigation.GoToPickUp('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToPickUp:" + actualValue);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/Got.html?c=123456';
    navigation.GoToPickUp();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToPickUp:" + actualValue);
    expectedResult = '/es/trackable/Got.html?c=abcdef';
    navigation.GoToPickUp('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToPickUp:" + actualValue);
});
test("NavigationController QueryStringNavigationProvider GoToDropOff", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.QueryStringNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/Left.html?c=123456';
    navigation.GoToDropOff();
    equal(actualValue, expectedResult, "NavigationController GoToDropOff:" + actualValue);
    expectedResult = '/en/trackable/Left.html?c=abcdef';
    navigation.GoToDropOff('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToDropOff:" + actualValue);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/Left.html?c=123456';
    navigation.GoToDropOff();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToDropOff:" + actualValue);
    expectedResult = '/es/trackable/Left.html?c=abcdef';
    navigation.GoToDropOff('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToDropOff:" + actualValue);
});
test("NavigationController QueryStringNavigationProvider LeftWithUser", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.QueryStringNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/LeftWithUser.html?c=123456';
    navigation.GoToUser();
    equal(actualValue, expectedResult, "NavigationController GoToUser:" + actualValue);
    expectedResult = '/en/trackable/LeftWithUser.html?c=abcdef';
    navigation.GoToUser('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToUser:" + actualValue);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/LeftWithUser.html?c=123456';
    navigation.GoToUser();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToUser:" + actualValue);
    expectedResult = '/es/trackable/LeftWithUser.html?c=abcdef';
    navigation.GoToUser('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToUser:" + actualValue);
});
test("NavigationController QueryStringNavigationProvider LeftAtLocation", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.QueryStringNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/LeftAtLocation.html?c=123456';
    navigation.GoToLocation();
    equal(actualValue, expectedResult, "NavigationController GoToLocation:" + actualValue);
    expectedResult = '/en/trackable/LeftAtLocation.html?c=abcdef';
    navigation.GoToLocation('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToLocation:" + actualValue);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/LeftAtLocation.html?c=123456';
    navigation.GoToLocation();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToLocation:" + actualValue);
    expectedResult = '/es/trackable/LeftAtLocation.html?c=abcdef';
    navigation.GoToLocation('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToLocation:" + actualValue);
});
test("NavigationController QueryStringNavigationProvider LeftAtGeocache", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.QueryStringNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/LeftAtGeocache.html?c=123456';
    navigation.GoToGeocache();
    equal(actualValue, expectedResult, "NavigationController GoToGeocache:" + actualValue);
    expectedResult = '/en/trackable/LeftAtGeocache.html?c=abcdef';
    navigation.GoToGeocache('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToGeocache:" + actualValue);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/LeftAtGeocache.html?c=123456';
    navigation.GoToGeocache();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToGeocache:" + actualValue);
    expectedResult = '/es/trackable/LeftAtGeocache.html?c=abcdef';
    navigation.GoToGeocache('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToGeocache:" + actualValue);
});
test("NavigationController QueryStringNavigationProvider GotFromUser", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.QueryStringNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/GotFromUser.html?c=123456';
    navigation.GoToUser();
    equal(actualValue, expectedResult, "NavigationController GoToUser:" + actualValue);
    expectedResult = '/en/trackable/GotFromUser.html?c=abcdef';
    navigation.GoToUser('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToUser:" + actualValue);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/GotFromUser.html?c=123456';
    navigation.GoToUser();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToUser:" + actualValue);
    expectedResult = '/es/trackable/GotFromUser.html?c=abcdef';
    navigation.GoToUser('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToUser:" + actualValue);
});
test("NavigationController QueryStringNavigationProvider GotFromLocation", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.QueryStringNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/GotFromLocation.html?c=123456';
    navigation.GoToLocation();
    equal(actualValue, expectedResult, "NavigationController GoToLocation:" + actualValue);
    expectedResult = '/en/trackable/GotFromLocation.html?c=abcdef';
    navigation.GoToLocation('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToLocation:" + actualValue);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/GotFromLocation.html?c=123456';
    navigation.GoToLocation();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToLocation:" + actualValue);
    expectedResult = '/es/trackable/GotFromLocation.html?c=abcdef';
    navigation.GoToLocation('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToLocation:" + actualValue);
});
test("NavigationController QueryStringNavigationProvider GotFromGeocache", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.QueryStringNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/GotFromGeocache.html?c=123456';
    navigation.GoToGeocache();
    equal(actualValue, expectedResult, "NavigationController GoToGeocache:" + actualValue);
    expectedResult = '/en/trackable/GotFromGeocache.html?c=abcdef';
    navigation.GoToGeocache('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToGeocache:" + actualValue);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/GotFromGeocache.html?c=123456';
    navigation.GoToGeocache();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToGeocache:" + actualValue);
    expectedResult = '/es/trackable/GotFromGeocache.html?c=abcdef';
    navigation.GoToGeocache('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToGeocache:" + actualValue);
});
test("NavigationController SessionNavigationProvider GoToAction", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.SessionNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/scan.html';
    navigation.GoToAction();
    equal(actualValue, expectedResult, "NavigationController GoToAction:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/en/trackable/scan.html';
    navigation.GoToAction('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToAction:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/scan.html';
    navigation.GoToAction();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToAction:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/es/trackable/scan.html';
    navigation.GoToAction('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToAction:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
});
test("NavigationController SessionNavigationProvider GoToView", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.SessionNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/GoToView.html';
    navigation.GoToView();
    equal(actualValue, expectedResult, "NavigationController GoToView:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/en/trackable/GoToView.html';
    navigation.GoToView('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToView:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/GoToView.html';
    navigation.GoToView();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToView:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/es/trackable/GoToView.html';
    navigation.GoToView('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToView:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
});
test("NavigationController SessionNavigationProvider GoToPickUp", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.SessionNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/Got.html';
    navigation.GoToPickUp();
    equal(actualValue, expectedResult, "NavigationController GoToPickUp:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/en/trackable/Got.html';
    navigation.GoToPickUp('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToPickUp:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/Got.html';
    navigation.GoToPickUp();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToPickUp:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/es/trackable/Got.html';
    navigation.GoToPickUp('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToPickUp:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
});
test("NavigationController SessionNavigationProvider GoToDropOff", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.SessionNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/Left.html';
    navigation.GoToDropOff();
    equal(actualValue, expectedResult, "NavigationController GoToDropOff:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/en/trackable/Left.html';
    navigation.GoToDropOff('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToDropOff:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/Left.html';
    navigation.GoToDropOff();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToDropOff:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/es/trackable/Left.html';
    navigation.GoToDropOff('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToDropOff:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
});
test("NavigationController SessionNavigationProvider LeftWithUser", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.SessionNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/LeftWithUser.html';
    navigation.GoToUser();
    equal(actualValue, expectedResult, "NavigationController GoToUser:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/en/trackable/LeftWithUser.html';
    navigation.GoToUser('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToUser:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/LeftWithUser.html';
    navigation.GoToUser();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToUser:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/es/trackable/LeftWithUser.html';
    navigation.GoToUser('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToUser:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
});
test("NavigationController SessionNavigationProvider LeftAtLocation", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.SessionNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/LeftAtLocation.html';
    navigation.GoToLocation();
    equal(actualValue, expectedResult, "NavigationController GoToLocation:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/en/trackable/LeftAtLocation.html';
    navigation.GoToLocation('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToLocation:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/LeftAtLocation.html';
    navigation.GoToLocation();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToLocation:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/es/trackable/LeftAtLocation.html';
    navigation.GoToLocation('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToLocation:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
});
test("NavigationController SessionNavigationProvider LeftAtGeocache", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.SessionNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/LeftAtGeocache.html';
    navigation.GoToGeocache();
    equal(actualValue, expectedResult, "NavigationController GoToGeocache:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/en/trackable/LeftAtGeocache.html';
    navigation.GoToGeocache('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToGeocache:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/LeftAtGeocache.html';
    navigation.GoToGeocache();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToGeocache:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/es/trackable/LeftAtGeocache.html';
    navigation.GoToGeocache('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToGeocache:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
});
test("NavigationController SessionNavigationProvider GotFromUser", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.SessionNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/GotFromUser.html';
    navigation.GoToUser();
    equal(actualValue, expectedResult, "NavigationController GoToUser:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/en/trackable/GotFromUser.html';
    navigation.GoToUser('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToUser:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/GotFromUser.html';
    navigation.GoToUser();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToUser:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/es/trackable/GotFromUser.html';
    navigation.GoToUser('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToUser:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
});
test("NavigationController SessionNavigationProvider GotFromLocation", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.SessionNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/GotFromLocation.html';
    navigation.GoToLocation();
    equal(actualValue, expectedResult, "NavigationController GoToLocation:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/en/trackable/GotFromLocation.html';
    navigation.GoToLocation('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToLocation:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/GotFromLocation.html';
    navigation.GoToLocation();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToLocation:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/es/trackable/GotFromLocation.html';
    navigation.GoToLocation('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToLocation:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
});
test("NavigationController SessionNavigationProvider GotFromGeocache", function () {
    var actualValue;
    var func = function (url) {
        actualValue = url;
    };
    var code = new Geo.Model.PrivateKeyInfo('123456');
    var navigationProvider = new Geo.Controller.SessionNavigationProvider(func);
    var language = 'en';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/en/trackable/GotFromGeocache.html';
    navigation.GoToGeocache();
    equal(actualValue, expectedResult, "NavigationController GoToGeocache:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/en/trackable/GotFromGeocache.html';
    navigation.GoToGeocache('abcdef');
    equal(actualValue, expectedResult, "NavigationController en override abcdef GoToGeocache:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    language = 'es';
    var navigation = new Geo.Controller.NavigationController(code, language, navigationProvider);
    var expectedResult = '/es/trackable/GotFromGeocache.html';
    navigation.GoToGeocache();
    equal(actualValue, expectedResult, "NavigationController es default 123456 GoToGeocache:" + actualValue);
    equal(sessionStorage['c'], '123456', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
    expectedResult = '/es/trackable/GotFromGeocache.html';
    navigation.GoToGeocache('abcdef');
    equal(actualValue, expectedResult, "NavigationController es override abcdef GoToGeocache:" + actualValue);
    equal(sessionStorage['c'], 'abcdef', "SessionNavigationProvider VALUE: " + sessionStorage['c']);
});
test("LocalStorageLogEntryRepository GetList/Add Empty", function () {
    var localStorageLogEntryRepository = new Geo.Repositories.LocalStorageLogEntryRepository();
    var logEntry1 = localStorageLogEntryRepository.Add(new Geo.Model.PrivateKeyInfo('111111'), null, null, null, null, null);
    var logEntryList = localStorageLogEntryRepository.GetList();
    ok(logEntryList[0].LogEntryLid >= 1, "length:" + logEntryList.length);
    equal(logEntryList[0].PrivateKey, '111111', "ActionType:" + logEntryList[0].PrivateKey);
    equal(logEntryList[0].ActionType, null, "ActionType:" + logEntryList[0].ActionType);
    equal(logEntryList[0].CacheCode, null, "CacheCode:" + logEntryList[0].CacheCode);
    equal(logEntryList[0].CacheSiteType, null, "CacheSiteType:" + logEntryList[0].CacheSiteType);
    equal(logEntryList[0].Coordinates, null, "Coordinates:" + logEntryList[0].Coordinates);
    ok(logEntryList[0].LogEntryLid >= 1, "LogEntryLid:" + logEntryList[0].LogEntryLid);
    equal(logEntryList[0].UserInteractedWith, null, "UserInteractedWith:" + logEntryList[0].UserInteractedWith);
});
test("LocalStorageLogEntryRepository GetList/Add Empty/Remove", function () {
    var localStorageLogEntryRepository = new Geo.Repositories.LocalStorageLogEntryRepository();
    var logEntryListOriginal = localStorageLogEntryRepository.GetList();
    var logEntryListOriginalLength = localStorageLogEntryRepository.Count();
    var logEntry1 = localStorageLogEntryRepository.Add(new Geo.Model.PrivateKeyInfo('111111'), null, null, null, null, null);
    ok(localStorageLogEntryRepository.Contains(logEntry1), "Add");
    equal(localStorageLogEntryRepository.Count(), logEntryListOriginalLength + 1, " After Add length:" + localStorageLogEntryRepository.Count());
    localStorageLogEntryRepository.Remove(logEntry1);
    ok(!localStorageLogEntryRepository.Contains(logEntry1), "Remove");
    equal(localStorageLogEntryRepository.Count(), logEntryListOriginalLength, " After Remove length:" + localStorageLogEntryRepository.Count());
});
test("LocalStorageLogEntryRepository Set GotFromGeocache", function () {
    var localStorageLogEntryRepository = new Geo.Repositories.LocalStorageLogEntryRepository();
    var logEntryListOriginal = localStorageLogEntryRepository.GetList();
    var logEntryListOriginalLength = localStorageLogEntryRepository.Count();
    var logEntry1 = localStorageLogEntryRepository.Add(new Geo.Model.PrivateKeyInfo('GFG001'), Geo.Enumerations.ActionTypes.PickUp, Geo.Enumerations.GeoCacheSiteTypes.OpenCachingDotCom, 'OC0001', null, null);
    equal(logEntry1.ActionType, Geo.Enumerations.ActionTypes.PickUp, " ActionType:" + logEntry1.ActionType);
    equal(logEntry1.CacheCode, 'OC0001', " CacheCode:" + logEntry1.CacheCode);
    equal(logEntry1.CacheSiteType, Geo.Enumerations.GeoCacheSiteTypes.OpenCachingDotCom, " CacheSiteType:" + logEntry1.CacheSiteType);
    equal(logEntry1.Coordinates, null, " Coordinates:" + logEntry1.Coordinates);
    equal(logEntry1.PrivateKey, 'GFG001', " PrivateKey:" + logEntry1.PrivateKey);
    equal(logEntry1.UserInteractedWith, null, " UserInteractedWith:" + null);
});
